package com.heima.wemedia.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.heima.model.common.dto.ResponseResult;
import com.heima.model.wemedia.dto.NewsAuthDto;
import com.heima.model.wemedia.dto.WmNewsDto;
import com.heima.model.wemedia.dto.WmNewsPageReqDto;
import com.heima.model.wemedia.pojo.WmNews;

import java.util.List;

/**
 * @author Ronaldo
 * @date 2021/8/4
 */
public interface NewsService extends IService<WmNews> {

    /**
     * 文章列表的分页查询
     * @param newsPageReqDto 分页参数及查询条件
     * @return ResponseResult
     */
    ResponseResult queryNewsListByPage(WmNewsPageReqDto newsPageReqDto);

    /**
     * 提交审核 或 保存草稿
     * @param newsDto 文章DTO
     * @return ResponseResult
     */
    ResponseResult submit(WmNewsDto newsDto);

    /**
     * 根据id获取文章数据
     * @param id 文章id
     * @return ResponseResult
     */
    ResponseResult getNewsById(Integer id);

    /**
     * 根据id删除文章
     * @param id 文章id
     * @return ResponseResult
     */
    ResponseResult deleteNewsById(Integer id);

    /**
     * 文章上架或下架
     * @param newsDto 文章信息
     * @return ResponseResult
     */
    ResponseResult downOrUp(WmNewsDto newsDto);

    /**
     * admin端 分页查询文章列表
     * @param newsAuthDto 分页参数及查询条件
     * @return ResponseResult
     */
    ResponseResult getNewsListForAdmin(NewsAuthDto newsAuthDto);

    /**
     * admin端  根据id查询文章信息
     * @param id newsId
     * @return ResponseResult
     */
    ResponseResult getNewsForAdminById(Integer id);

    /**
     * admin端 人工审核
     * @param newsAuthDto 审核参数
     * @param status 审核状态  4 人工审核公共   2  人工审核失败
     * @return ResponseResult
     */
    ResponseResult manualScan(NewsAuthDto newsAuthDto, short status);

    /**
     * 查询需要发布的文章id集合
     * @return 文章id集合
     */
    List<Integer> findReleaseNewsId();

}
